package cqrtplm.service;

import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import cqrtplm.entity.RtChangeaffectAssociatedbomDO;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

public interface RTChangeRelatedService {

    List<JSONObject> getCustomerByCode(String code, String type) throws Exception;

    String checkCompleteDraw(String workFlowContainerId);

    List<JSONObject> getProductArea(String code, String type) throws Exception;

    List<JSONObject> getAssociationDoc(String code) throws Exception;

    List<Map<String, Object>> getOrderNo(String code, String type);

    JSONObject getChangeImpactAnalysis(LinkedHashMap<String,Object> reqMap);

    String saveChangeImpactAnalysis(LinkedHashMap<String,Object> map) throws Exception;

    JSONObject getRelateChangeDetail(String changeNo, String partNo) throws Exception;

    List<JSONObject> getOrderInquiry(String partNo) throws Exception;

    List<JSONObject> queryAllAffectBOM(String partNo, String type) throws Exception;

    String saveChangeImpactBOM(LinkedHashMap<String,Object> map) throws Exception;

    List<RtChangeaffectAssociatedbomDO> querySaveAffectBOM(String changeNo, String partNo, String segmNum, String partType, String changeStyle);

    String synchronousAssociationObj(LinkedHashMap<String,Object> map);

    JSONObject collectModels(String changeNo);

    List<JSONObject> getDevCodeAndModel(String devCode);

    List<JSONObject> getMaterialOrDrawNo(String code, String type);

    /**
     * 查询受影响的bom
     * @param map
     * @return
     * @throws Exception
     */
    List<JSONObject> queryAffectBOM(LinkedHashMap<String,Object> map) throws Exception;
    /**
     * 查询受影响的bom
     * @param map
     * @return
     * @throws Exception
     */
    List<RtChangeaffectAssociatedbomDO> querySaveAffectBOM(LinkedHashMap<String,Object> map) throws Exception;

    /**
     * 根据编码和类型模糊匹配零件编码
     * @param code
     * @param type
     * @return
     */
    List<JSONObject> queryPartNumberByType(String code, String type);

}